<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <script>
        // 解构赋值是对赋值运算符的一种扩展
        // 它针对数组和对象来进行操作
        // 优点：代码书写上简洁易读
        let node = {
            name: 'node',
            age: 20,
        }
        // 完全解构
        let {name,age} = node;
        console.log(name);
        console.log(age);

        let obj = {
            a:{
                name: 'obj',
            },
            b:[],
            c:'hello'
        }
        // 不完全解构 可忽略某些属性
        // 通过a:f将值赋值给f
        let {a:f} = obj;
        console.log(f);

        // 剩余运算符
        let {a,...rest} = obj;
        console.log(rest);

        // b2使用默认值
        let {a2, b2 = 30} = {a2: 10};
        console.log(a2,b2);

        // 对数组解构
        let arr = [1, 2, 3];
        let [a3,b3] = arr;
        console.log(a3,b3);

        // 可嵌套
        let [a4,[b4],c4] = [1,[2],3];
        console.log(a4,b4,c4);
    </script>
</body>
</html>